#ifndef __KEY_BOARD_SAMPLE_H
#define __KEY_BOARD_SAMPLE_H

#include "stm32f4xx_hal.h"
#include "key_board/key_board.h"

/*内部上拉输入，低有效*/
#define KEY_PORT_J12            GPIOE
#define KEY_PIN_J12             GPIO_PIN_2
#define KEY_PRESS_LEVEL_J12     GPIO_PIN_RESET
#define KEY_RELEASE_LEVEL_J12   GPIO_PIN_SET
#define KEY_PORT_J34            GPIOE
#define KEY_PIN_J34             GPIO_PIN_3
#define KEY_PRESS_LEVEL_J34     GPIO_PIN_RESET
#define KEY_RELEASE_LEVEL_J34   GPIO_PIN_SET
#define KEY_PORT_J56            GPIOE
#define KEY_PIN_J56             GPIO_PIN_4
#define KEY_PRESS_LEVEL_J56     GPIO_PIN_RESET
#define KEY_RELEASE_LEVEL_J56   GPIO_PIN_SET
/*推挽输出，低使能，高失能*/
#define KEY_PORT_J135           GPIOE
#define KEY_PIN_J135            GPIO_PIN_5
#define KEY_PORT_J246           GPIOE
#define KEY_PIN_J246            GPIO_PIN_6
#define KEY_CTL_LINE_ENABLE     GPIO_PIN_RESET
#define KEY_CTL_LINE_DISABLE    GPIO_PIN_SET

#define RCC_KEY_BOARD_CLK_ENABLE() do { \
    __HAL_RCC_GPIOE_CLK_ENABLE();       \
}while(0)

enum key_id_e {
    KEY_UP,
    KEY_LEFT,
    KEY_DOWN,
    KEY_ENTER,
    KEY_RIGHT,
    KEY_EXIT,
};

/*按键 GPIO 初始化*/
void GPIO_Key_Board_Init(void);
/*使能按键*/
void KeyEnable(void);
/*失能按键*/
void KeyDisable(void);

#endif/*__KEY_BOARD_SAMPLE_H*/
